Older people, and those with underlying medical problems like cardiovascular disease, diabetes, chronic respiratory disease, and cancer are more likely to develop serious illness.
The COVID-19 virus spreads primarily through droplets of saliva or discharge from the nose when an infected person coughs or sneezes, so it’s important that you also practice respiratory etiquette (for example, by coughing into a flexed elbow).
The best way to prevent and slow down transmission is be well informed about the COVID-19 virus, the disease it causes and how it spreads.
import pandas as pd
import numpy as np
import seaborn as sns
import sys
import matplotlib as plt
from matplotlib.pyplot import *
import plotly.offline as plo
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import bar_chart_race as bcr
from IPython.display import HTML
import warnings
warnings.filterwarnings("ignore")
from IPython.display import Video
covid_19_india.csv
data = pd.read_csv(r"D:\DATA SCIENCE\Covid19 analysis\557629_1323860_bundle_archive\covid_19_india.csv")
data.head(10)
data.columns
data.info()
data.describe()
data.isnull().sum()
data['Date'] = pd.to_datetime(data['Date'], dayfirst=True)
data.head()
data3 = pd.pivot_table(data, values=['Confirmed','Deaths','Cured'], index='State/UnionTerritory', aggfunc='max')
data3 = data3.sort_values(by='Confirmed', ascending= False)
data3.style.background_gradient(cmap='Wistia')
print("Total Cases in India:",int(data3['Confirmed'].sum()))
data4 = [go.Bar(
x = data3.index,
y = data3[colname],
name = colname
)for colname in data3.columns]
fig = go.Figure(data=data4)
plo.iplot(fig)
def plotly_graph_state(state):
temp = data[data['State/UnionTerritory']==state]
trace0 = go.Scatter(
x = temp.index,
y = temp['Confirmed'],
mode = 'lines+markers',
marker = dict(color='green'),
name = 'Confirmed Cases in {0}'.format(state)
)
layout = go.Layout(
title = 'Confirmed Cases in {0}'.format(state)
)
fig = go.Figure(
data = [trace0],
layout = layout
)
plo.iplot(fig)
all_states = list(data3.sort_values(by='Confirmed', ascending= False).index[:5])
for state in all_states:
plotly_graph_state(state)
sns.relplot(x="Cured", y="Confirmed", hue = "State/UnionTerritory", data=data)
People are recovering at a faster side
sns.relplot(x="Confirmed", y="Deaths", hue = "State/UnionTerritory", data=data)
The death rate is much lower in India
sns.relplot(x="ConfirmedIndianNational", y="Confirmed", hue = "State/UnionTerritory", data=data)
Initially most case were detected in Foreign Nationals but as days flew by no. of cases in Indian Nationals turned out to be more and more.
sns.pairplot(data)
The scatter plotting is a bit confusing to get the representation. Actually, it provides an overall representation of the whole dataset.
sns.relplot(x='Cured',y='Confirmed', kind='line', hue='State/UnionTerritory', data=data)
AgeGroupDetails.csv
data1 = pd.read_csv(r"D:\DATA SCIENCE\Covid19 analysis\557629_1323860_bundle_archive\AgeGroupDetails.csv")
data1.head(10)
data1.columns
import matplotlib.ticker as ticker
import matplotlib.cm as cm
import matplotlib as mpl
from matplotlib.gridspec import GridSpec
import matplotlib.pyplot as plt
%matplotlib inline
labels = list(data1['AgeGroup'])
sizes = list(data1['TotalCases'])
explode = []
for i in labels:
explode.append(0.05)
plt.figure(figsize= (15,10))
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=9, explode =explode)
centre_circle = plt.Circle((0,0),0.70,fc='white')
fig = plt.gcf()
fig.gca().add_artist(centre_circle)
plt.title('India - Age Group wise Distribution',fontsize = 20)
plt.axis('equal')
plt.tight_layout()
HospitalBedsIndia.csv
data2 = pd.read_csv(r"D:\DATA SCIENCE\Covid19 analysis\557629_1323860_bundle_archive\HospitalBedsIndia.csv")
data2.head(10)
data2.columns
data4 = pd.pivot_table(data2, values=['TotalPublicHealthFacilities_HMIS','NumPrimaryHealthCenters_HMIS','NumCommunityHealthCenters_HMIS','NumSubDistrictHospitals_HMIS','NumDistrictHospitals_HMIS'], index='State/UT', aggfunc='max')
data4 = data4.sort_values(by='TotalPublicHealthFacilities_HMIS',ascending= False)
data4.style.background_gradient(cmap='Wistia')
labels = list(data2['State/UT'])
sizes = list(data2['TotalPublicHealthFacilities_HMIS'])
explode = []
for i in labels:
explode.append(0.05)
plt.figure(figsize= (15,10))
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=9, explode =explode)
centre_circle = plt.Circle((0,0),0.70,fc='white')
fig = plt.gcf()
fig.gca().add_artist(centre_circle)
plt.title('India - Hospital Bed wise Distribution',fontsize = 20)
plt.axis('equal')
plt.tight_layout()
sns.pairplot(data2)
StatewiseTestingDetails.csv
data5 = pd.read_csv(r"D:\DATA SCIENCE\Covid19 analysis\557629_1323860_bundle_archive\StatewiseTestingDetails.csv")
data5.head()
data5.columns
data6=data5.drop(['Date'],axis='columns')
data6.head()
data6 = pd.pivot_table(data6, values=['TotalSamples'], index='State', aggfunc='max')
data6 = data6.sort_values(by='State',ascending= True)
data6.style.background_gradient(cmap='Wistia')
matplotlib.rcParams["figure.figsize"] = (20,10)
plt.hist(data6,rwidth=0.8)
plt.xlabel("State")
plt.ylabel("TotalSamples")
ic = pd.read_csv(r"D:\DATA SCIENCE\Covid19 analysis\557629_1323860_bundle_archive\datasets_555917_1128483_Indian Coordinates.csv")
ic.head()
cc = pd.read_csv(r"D:\DATA SCIENCE\Covid19 analysis\557629_1323860_bundle_archive\datasets_555917_1128483_Covid cases in India.csv")
cc.head()
df_full = pd.merge(ic,cc,on='Name of State / UT')
map = folium.Map(location=[20, 80], zoom_start=1,tiles='Stamen Toner')
for lat, lon, value, name in zip(df_full['Latitude'], df_full['Longitude'], df_full['Active'], df_full['Name of State / UT']):
folium.CircleMarker([lat, lon],
radius=value*0.002,
popup = ('<strong>State</strong>: ' + str(name).capitalize() + '<br>'
'<strong>Active Cases</strong>: ' + str(value) + '<br>'),
color='red',
fill_color='red',
fill_opacity=0.3 ).add_to(map)
map
%%HTML
<div class='tableauPlaceholder' id='viz1588697469217' style='position: relative'><noscript><a href='#'><img alt=' ' src='https://public.tableau.com/static/images/44/44JW7JNG3/1_rss.png' style='border: none' /></a></noscript><object class='tableauViz' style='display:none;'><param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' /> <param name='embed_code_version' value='3' /> <param name='path' value='shared/44JW7JNG3' /> <param name='toolbar' value='yes' /><param name='static_image' value='https://public.tableau.com/static/images/44/44JW7JNG3/1.png' /> <param name='animate_transition' value='yes' /><param name='display_static_image' value='yes' /><param name='display_spinner' value='yes' /><param name='display_overlay' value='yes' /><param name='display_count' value='yes' /><param name='filter' value='publish=yes' /></object></div> <script type='text/javascript'> var divElement = document.getElementById('viz1588697469217'); var vizElement = divElement.getElementsByTagName('object')[0]; if ( divElement.offsetWidth > 800 ) { vizElement.style.minWidth='420px';vizElement.style.maxWidth='650px';vizElement.style.width='100%';vizElement.style.minHeight='587px';vizElement.style.maxHeight='887px';vizElement.style.height=(divElement.offsetWidth*0.75)+'px';} else if ( divElement.offsetWidth > 500 ) { vizElement.style.minWidth='420px';vizElement.style.maxWidth='650px';vizElement.style.width='100%';vizElement.style.minHeight='587px';vizElement.style.maxHeight='887px';vizElement.style.height=(divElement.offsetWidth*0.75)+'px';} else { vizElement.style.width='100%';vizElement.style.height='1477px';} var scriptElement = document.createElement('script'); scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js'; vizElement.parentNode.insertBefore(scriptElement, vizElement); </script>
f, ax = plt.subplots(figsize=(12, 8))
data8 = df_full[['Name of State / UT','Total Confirmed cases','Cured/Discharged/Migrated','Deaths']]
data8.sort_values('Total Confirmed cases',ascending=False,inplace=True)
sns.set_color_codes("pastel")
sns.barplot(x="Total Confirmed cases", y="Name of State / UT", data=data8,
label="Total", color="r")
sns.set_color_codes("muted")
sns.barplot(x="Cured/Discharged/Migrated", y="Name of State / UT", data=data8,
label="Recovered", color="g")
# Add a legend and informative axis label
ax.legend(ncol=2, loc="lower right", frameon=True)
ax.set(xlim=(0, 10000), ylabel="",
xlabel="Cases")
sns.despine(left=True, bottom=True)
import pandas as pd
data9 = pd.read_excel(r'D:\DATA SCIENCE\Covid19 analysis\557629_1323860_bundle_archive\datasets_555917_1128483_per_day_cases.xlsx',sheet_name='India')
data9.head()
# Rise in COVID-19 cases in India
fig = go.Figure()
fig.add_trace(go.Scatter(x=data9['Date'], y=data9['Total Cases'],
mode='lines+markers',name='Total Cases'))
fig.add_trace(go.Scatter(x=data9['Date'], y=data9['New Cases'],
mode='lines',name='New Cases'))
fig.update_layout(title_text='Trend of Coronavirus Cases in India(Cumulative cases)',plot_bgcolor='rgb(250, 242, 242)')
fig.show()
# New COVID-19 cases reported daily in India
import plotly.express as px
fig = px.bar(data9, x="Date", y="New Cases", barmode='group',
height=400)
fig.update_layout(title_text='New Coronavirus Cases in India per day',plot_bgcolor='rgb(250, 242, 242)')
fig.show()
fig = px.bar(data9, x="Date", y="Total Cases", color='Total Cases', orientation='v', height=600,
title='Confirmed Cases in India', color_discrete_sequence = px.colors.cyclical.mygbm)
fig.update_layout(plot_bgcolor='rgb(250, 242, 242)')
fig.show()
from plotly.subplots import make_subplots
fig = make_subplots(
rows=2, cols=2,
specs=[[{}, {}],
[{"colspan": 2}, None]],
#subplot_titles=("India")
)
fig.add_trace(go.Scatter(x=data9['Date'], y=data9['Total Cases'],
marker=dict(color=data9['Total Cases'], coloraxis="coloraxis")),
2, 1)
fig.update_layout(coloraxis=dict(colorscale='Bluered_r'), showlegend=False,title_text="Trend of Coronavirus cases")
fig.update_layout(plot_bgcolor='rgb(250, 242, 242)')
fig.show()
IndividualDetails.csv
data10 = pd.read_csv(r"D:\DATA SCIENCE\Covid19 analysis\557629_1323860_bundle_archive\IndividualDetails.csv")
data10.head()
sns.countplot(y='gender', data=data10)
plt.show()
data10 = data10.detected_state.value_counts()
sns.barplot(y = data10.index, x = data10, orient='h');